Distributed computer systems utilize the technique of distributing application execution. More specifically, an application server provides application execution services to network users rather than running the application at the user's workstation. When an application runs, the application server intercepts the user's interface (e.g., the display screen, keyboard, and mouse) data and transmits/receives this data to/from a user program running at the user's workstation. For example, when an application involves graphical lines, the application server intercepts the graphical user interface and interacts with the user program to display lines on a display at the user's workstation.
Graphical lines are frequently required in most processing operations and come in various forms, including straight, arcs, ellipses, and bezier curves. In many distributed computer systems, it is desirable for the application server to communicate graphical line data to workstations over a low bandwidth communication transport mechanism, such as serial lines, telephone lines, local area networks and wide area networks.
In one known implementation, graphical curved lines are transmitted by the application server as pixel coordinates, with each pixel definition being 7 bytes in length. However, every active pixel is transmitted as there is no interpolation method employed at the receiving workstation. If, for example, a small circle consists of 1000 active pixels, then 7000 bytes of data are transmitted by the application server. Non-curved lines are transmitted as pixel coordinates, with each pixel representing an endpoint of a straight line. The receiving workstation is responsible for interpolating between every two endpoints. Each endpoint is represented as 4 bytes, and each set of endpoints includes an additional header 27 bytes in length. For example, a simple straight line of two points requires 35 bytes (27+4*(2)). Using this known implementation, the transmission of uncompressed data over a low bandwidth transport mechanism would be too slow for adequate usability.
It is therefore a principal object of this invention to provide a method for the lossless compression of lines in a distributed computer system that allows for the use low bandwidth communication transport mechanism, such as serial lines, telephone lines, local area networks and wide area networks.